using Cysharp.Threading.Tasks;

namespace ModuleManager
{
    /// <summary>
    /// 模块级别的启动入口
    /// </summary>
    public interface IModuleStartUp
    {
        /// <summary>
        /// 启动入口
        /// </summary>
        /// <param name="context">上下文参数</param>
        /// <returns>如果返回true，则会继续后续StartUp的执行，如果返回false，则中断后续StartUp的执行</returns>
        UniTask<bool> StartAsync(object context);

        /// <summary>
        /// 停止入口
        /// </summary>
        /// <returns></returns>
        UniTask StopAsync();
    }
}